<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>XMP Toolkit SDK: public/include/TXMPFiles.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xmp_tagline_small.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">XMP Toolkit SDK
   &#160;<span id="projectnumber">6.0.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('TXMPFiles_8hpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">TXMPFiles.hpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="TXMPFiles_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef __TXMPFiles_hpp__</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define __TXMPFiles_hpp__    1</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#if ( ! __XMP_hpp__ )</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">    #error &quot;Do not directly include, use XMP.hpp&quot;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">// =================================================================================================</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">// Copyright Adobe</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">// Copyright 2002 Adobe</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">// All Rights Reserved</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">// of the Adobe license agreement accompanying it. If you have received this file from a source other </span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// than Adobe, then your use, modification, or distribution of it requires the prior written permission</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">// of Adobe.</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">// =================================================================================================</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160; </div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">// =================================================================================================</span></div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment"></span><span class="comment">// =================================================================================================</span></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment">// =================================================================================================</span></div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment"></span><span class="comment">// =================================================================================================</span></div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#if XMP_StaticBuild    // ! Client XMP_IO objects can only be used in static builds.</span></div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">    #include &quot;<a class="code" href="XMP__IO_8hpp.html">XMP_IO.hpp</a>&quot;</span></div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> tStringObj&gt;</div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classTXMPFiles.html">   69</a></span>&#160;<span class="keyword">class </span><a class="code" href="classTXMPFiles.html">TXMPFiles</a> {</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="comment">// =============================================================================================</span></div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e">GetVersionInfo</a> ( <a class="code" href="structXMP__VersionInfo.html">XMP_VersionInfo</a> * versionInfo );</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160; </div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">Initialize</a>();</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">Initialize</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options );</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">Initialize</a> ( <span class="keyword">const</span> <span class="keywordtype">char</span>* pluginFolder, <span class="keyword">const</span> <span class="keywordtype">char</span>* plugins = NULL );</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160; </div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">Initialize</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options, <span class="keyword">const</span> <span class="keywordtype">char</span>* pluginFolder, <span class="keyword">const</span> <span class="keywordtype">char</span>* plugins = NULL );</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a1e8de80c252b60b332dc4bc524139fd8">Terminate</a>();</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="comment">// =============================================================================================</span></div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <a class="code" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles</a>();</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classTXMPFiles.html#a5eaa92724cc82d933a32eff9c4636739">~TXMPFiles</a>() <span class="keywordflow">throw</span>();</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160; </div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    <a class="code" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>  filePath,</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;                <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>,</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;                <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags = 0 );</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160; </div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    <a class="code" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles</a> ( <span class="keyword">const</span> tStringObj &amp; filePath,</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;                <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>     format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>,</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;                <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>     openFlags = 0 );</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160; </div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <a class="code" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles</a> ( <span class="keyword">const</span> <a class="code" href="classTXMPFiles.html">TXMPFiles&lt;tStringObj&gt;</a> &amp; original );</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160; </div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a3f1483fcc92860460d3772216dfaef81">operator= </a>( <span class="keyword">const</span> <a class="code" href="classTXMPFiles.html">TXMPFiles&lt;tStringObj&gt;</a> &amp; rhs );</div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160; </div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160; </div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    <a class="code" href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles</a> ( <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> xmpFilesObj );</div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160; </div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> <a class="code" href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009">GetInternalRef</a>();</div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160; </div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160; </div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    <span class="comment">// =============================================================================================</span></div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160; </div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a6ac78e3c7286ca8dcb41eaa007aa00e8">GetFormatInfo</a> ( <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>   format,</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;                                <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * handlerFlags = 0 );</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160; </div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160; </div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    <span class="comment">// =============================================================================================</span></div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    <span class="keyword">static</span> <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> <a class="code" href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926">CheckFileFormat</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> filePath );</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160; </div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    <span class="keyword">static</span> <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> <a class="code" href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c">CheckPackageFormat</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> folderPath );</div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160; </div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d">GetFileModDate</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>    filePath,</div>
<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;                                 <a class="code" href="structXMP__DateTime.html">XMP_DateTime</a> *   modDate,</div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;                                 <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> * format = 0,</div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;                                 <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>   options = 0 );</div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        </div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160; </div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;<span class="comment"></span>    </div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a">GetAssociatedResources</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>            filePath,</div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;                                         std::vector&lt;tStringObj&gt;* resourceList,</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;                                         <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>           format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>, </div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;                                         <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>           options = 0);</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160; </div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;<span class="comment"></span>    </div>
<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e">IsMetadataWritable</a> (<a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>  filePath,</div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;                                   <span class="keywordtype">bool</span> *         writable,    </div>
<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;                                   <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>,</div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;                                   <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options = 0 );</div>
<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160; </div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb">OpenFile</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>  filePath,</div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;                    <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>,</div>
<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;                    <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags = 0 );</div>
<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160; </div>
<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb">OpenFile</a> ( <span class="keyword">const</span> tStringObj &amp; filePath,</div>
<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;                    <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a>     format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>,</div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;                    <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>     openFlags = 0 );</div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160; </div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;<span class="preprocessor">    #if XMP_StaticBuild    // ! Client XMP_IO objects can only be used in static builds.</span></div>
<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb">OpenFile</a> ( <a class="code" href="classXMP__IO.html">XMP_IO</a> *       clientIO,</div>
<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;                    <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> format = <a class="code" href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a>,</div>
<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;                    <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> openFlags = 0 );</div>
<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;<span class="preprocessor">    #endif</span></div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160; </div>
<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927">CloseFile</a> ( <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> closeFlags = 0 );</div>
<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160; </div>
<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b">GetFileInfo</a> ( tStringObj *     filePath = 0,</div>
<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;                       <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * openFlags = 0,</div>
<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;                       <a class="code" href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a> * format = 0,</div>
<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;                       <a class="code" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> * handlerFlags = 0 );</div>
<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160; </div>
<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777">SetAbortProc</a> ( <a class="code" href="XMP__Const_8h.html#a4db130914b233d0c7b959395c84b43b9">XMP_AbortProc</a> abortProc,</div>
<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;                        <span class="keywordtype">void</span> *        abortArg );</div>
<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160; </div>
<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160; </div>
<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;    <span class="comment">// =============================================================================================</span></div>
<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3">GetXMP</a> ( SXMPMeta *       xmpObj = 0,</div>
<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;                  tStringObj *     xmpPacket = 0,</div>
<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;                  <a class="code" href="structXMP__PacketInfo.html">XMP_PacketInfo</a> * packetInfo = 0 );</div>
<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160; </div>
<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a">PutXMP</a> ( <span class="keyword">const</span> SXMPMeta &amp; xmpObj );</div>
<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160; </div>
<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a">PutXMP</a> ( <span class="keyword">const</span> tStringObj &amp; xmpPacket );</div>
<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160; </div>
<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a">PutXMP</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> xmpPacket,</div>
<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;                  <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> xmpLength = <a class="code" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">kXMP_UseNullTermination</a> );</div>
<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160; </div>
<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">CanPutXMP</a> ( <span class="keyword">const</span> SXMPMeta &amp; xmpObj );</div>
<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160; </div>
<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">CanPutXMP</a> ( <span class="keyword">const</span> tStringObj &amp; xmpPacket );</div>
<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160; </div>
<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">CanPutXMP</a> ( <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> xmpPacket,</div>
<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;                     <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> xmpLength = <a class="code" href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">kXMP_UseNullTermination</a> );</div>
<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160; </div>
<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160; </div>
<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;    <span class="comment">// =============================================================================================</span></div>
<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753">SetDefaultProgressCallback</a> ( <a class="code" href="XMP__Const_8h.html#a9639ef73ab21086098b0f099de248f26">XMP_ProgressReportProc</a> proc, <span class="keywordtype">void</span> * context = 0,</div>
<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;                                             <span class="keywordtype">float</span> interval = 1.0, <span class="keywordtype">bool</span> sendStartStop = <span class="keyword">false</span> );</div>
<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160; </div>
<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d">SetProgressCallback</a> ( <a class="code" href="XMP__Const_8h.html#a9639ef73ab21086098b0f099de248f26">XMP_ProgressReportProc</a> proc, <span class="keywordtype">void</span> * context = 0,</div>
<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;                               <span class="keywordtype">float</span> interval = 1.0, <span class="keywordtype">bool</span> sendStartStop = <span class="keyword">false</span> );</div>
<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;                                             </div>
<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160; </div>
<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;    <span class="comment">// =============================================================================================</span></div>
<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;    <span class="comment">// Error notifications</span></div>
<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;    <span class="comment">// ===================</span></div>
<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160; </div>
<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;    <span class="comment">// ---------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    <span class="comment">//  --------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7">SetDefaultErrorCallback</a> ( <a class="code" href="XMP__Const_8h.html#a32284d1645c6d852761b107b0232c285">XMPFiles_ErrorCallbackProc</a> proc, <span class="keywordtype">void</span>* context = 0, XMP_Uns32 limit = 1 );</div>
<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160; </div>
<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;    <span class="comment">//  --------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1">SetErrorCallback</a> ( <a class="code" href="XMP__Const_8h.html#a32284d1645c6d852761b107b0232c285">XMPFiles_ErrorCallbackProc</a> proc, <span class="keywordtype">void</span>* context = 0, XMP_Uns32 limit = 1 );</div>
<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160; </div>
<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;    <span class="comment">//  --------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2">ResetErrorCallbackLimit</a> ( XMP_Uns32 limit = 1 );</div>
<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160; </div>
<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160; </div>
<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;    <span class="comment">// =============================================================================================</span></div>
<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160; </div>
<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160; </div>
<div class="line"><a name="l00844"></a><span class="lineno"><a class="line" href="classTXMPFiles.html#a5977d8094086a7c2bfa9abe03af2265c">  844</a></span>&#160;    <a class="code" href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a> <a class="code" href="classTXMPFiles.html#a5977d8094086a7c2bfa9abe03af2265c">xmpFilesRef</a>;</div>
<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160; </div>
<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;    <span class="comment">// These are used as callbacks from the library code to the client when returning values that</span></div>
<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;    <span class="comment">// involve heap allocations. This ensures the allocations occur within the client.</span></div>
<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#ae403e54b9cc5df0f59d79e31cce84e3f">SetClientString</a> ( <span class="keywordtype">void</span> * clientPtr, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> valuePtr, <a class="code" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> valueLen );</div>
<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTXMPFiles.html#afd30a5ad1765a9288e7f6ef118255a73">SetClientStringVector</a> ( <span class="keywordtype">void</span> * clientPtr, <a class="code" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>* arrayPtr, XMP_Uns32 stringCount );</div>
<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;};    <span class="comment">// class TXMPFiles</span></div>
<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160; </div>
<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;<span class="comment">// =================================================================================================</span></div>
<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160; </div>
<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;<span class="preprocessor">#endif // __TXMPFiles_hpp__</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclassTXMPFiles_html_a7b86c130fdbd54b5ac158ec3fee93777"><div class="ttname"><a href="classTXMPFiles.html#a7b86c130fdbd54b5ac158ec3fee93777">TXMPFiles::SetAbortProc</a></div><div class="ttdeci">void SetAbortProc(XMP_AbortProc abortProc, void *abortArg)</div><div class="ttdoc">SetAbortProc() registers a callback function used to check for a user-signaled abort.</div></div>
<div class="ttc" id="aclassTXMPFiles_html_a14f01e38454178578fd25fff6024fd54"><div class="ttname"><a href="classTXMPFiles.html#a14f01e38454178578fd25fff6024fd54">TXMPFiles::TXMPFiles</a></div><div class="ttdeci">TXMPFiles()</div><div class="ttdoc">Default constructor initializes an object that is associated with no file.</div></div>
<div class="ttc" id="aclassTXMPFiles_html_a7f505664c41d7304fb757d6009b0751c"><div class="ttname"><a href="classTXMPFiles.html#a7f505664c41d7304fb757d6009b0751c">TXMPFiles::CheckPackageFormat</a></div><div class="ttdeci">static XMP_FileFormat CheckPackageFormat(XMP_StringPtr folderPath)</div><div class="ttdoc">CheckPackageFormat() tries to determine the format of a &quot;package&quot; folder.</div></div>
<div class="ttc" id="aclassTXMPFiles_html_a0de588c4b98086206b3a5d737012106d"><div class="ttname"><a href="classTXMPFiles.html#a0de588c4b98086206b3a5d737012106d">TXMPFiles::GetFileModDate</a></div><div class="ttdeci">static bool GetFileModDate(XMP_StringPtr filePath, XMP_DateTime *modDate, XMP_FileFormat *format=0, XMP_OptionBits options=0)</div><div class="ttdoc">GetFileModDate() returns the last modification date of all files that are returned by GetAssociatedRe...</div></div>
<div class="ttc" id="astructXMP__VersionInfo_html"><div class="ttname"><a href="structXMP__VersionInfo.html">XMP_VersionInfo</a></div><div class="ttdoc">XMP Toolkit version information.</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01565">XMP_Const.h:1565</a></div></div>
<div class="ttc" id="aXMP__Const_8h_html_a32284d1645c6d852761b107b0232c285"><div class="ttname"><a href="XMP__Const_8h.html#a32284d1645c6d852761b107b0232c285">XMPFiles_ErrorCallbackProc</a></div><div class="ttdeci">bool(* XMPFiles_ErrorCallbackProc)(void *context, XMP_StringPtr filePath, XMP_ErrorSeverity severity, XMP_Int32 cause, XMP_StringPtr message)</div><div class="ttdoc">The signature of a client-defined callback for TXMPFiles error notifications.</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01317">XMP_Const.h:1317</a></div></div>
<div class="ttc" id="aXMP__Const_8h_html_a4db130914b233d0c7b959395c84b43b9"><div class="ttname"><a href="XMP__Const_8h.html#a4db130914b233d0c7b959395c84b43b9">XMP_AbortProc</a></div><div class="ttdeci">bool(* XMP_AbortProc)(void *arg)</div><div class="ttdoc">The signature of a client-defined callback to check for a user request to abort a time-consuming oper...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01527">XMP_Const.h:1527</a></div></div>
<div class="ttc" id="aXMP__Const_8h_html_aa4bca98ad67d7a62c60cb13dbbab0f25"><div class="ttname"><a href="XMP__Const_8h.html#aa4bca98ad67d7a62c60cb13dbbab0f25">XMPFilesRef</a></div><div class="ttdeci">struct __XMPFiles__ * XMPFilesRef</div><div class="ttdoc">An &quot;ABI safe&quot; pointer to the internal part of an XMP file-handling object. Use to pass an XMP file-ha...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00151">XMP_Const.h:151</a></div></div>
<div class="ttc" id="astructXMP__PacketInfo_html"><div class="ttname"><a href="structXMP__PacketInfo.html">XMP_PacketInfo</a></div><div class="ttdoc">XMP packet description.</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01081">XMP_Const.h:1081</a></div></div>
<div class="ttc" id="aXMP__Const_8h_html_abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719"><div class="ttname"><a href="XMP__Const_8h.html#abc5c98fcc1211af2b80116dd6e0a035da2845f95eaaaf492f5011bff05a398719">kXMP_UnknownFile</a></div><div class="ttdeci">@ kXMP_UnknownFile</div><div class="ttdoc">Unknown file format constant: ' '.</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00999">XMP_Const.h:999</a></div></div>
<div class="ttc" id="aclassTXMPFiles_html_a07b7c4b44fb0e0a7d115ddd5ba22f926"><div class="ttname"><a href="classTXMPFiles.html#a07b7c4b44fb0e0a7d115ddd5ba22f926">TXMPFiles::CheckFileFormat</a></div><div class="ttdeci">static XMP_FileFormat CheckFileFormat(XMP_StringPtr filePath)</div><div class="ttdoc">CheckFileFormat() tries to determine the format of a file.</div></div>
<div class="ttc" id="aXMP__IO_8hpp_html"><div class="ttname"><a href="XMP__IO_8hpp.html">XMP_IO.hpp</a></div></div>
<div class="ttc" id="aclassTXMPFiles_html_a6e521c034728b59ab55213a9d8203d1e"><div class="ttname"><a href="classTXMPFiles.html#a6e521c034728b59ab55213a9d8203d1e">TXMPFiles::GetVersionInfo</a></div><div class="ttdeci">static void GetVersionInfo(XMP_VersionInfo *versionInfo)</div><div class="ttdoc">GetVersionInfo() retrieves version information for the XMPFiles component.</div></div>
<div class="ttc" id="aclassTXMPFiles_html_af9931d081cb19f98c81e41786030765b"><div class="ttname"><a href="classTXMPFiles.html#af9931d081cb19f98c81e41786030765b">TXMPFiles::GetFileInfo</a></div><div class="ttdeci">bool GetFileInfo(tStringObj *filePath=0, XMP_OptionBits *openFlags=0, XMP_FileFormat *format=0, XMP_OptionBits *handlerFlags=0)</div><div class="ttdoc">GetFileInfo() retrieves basic information about an opened file.</div></div>
<div class="ttc" id="aclassTXMPFiles_html_a83335ee20bb3ea543c8c86a5757a7753"><div class="ttname"><a href="classTXMPFiles.html#a83335ee20bb3ea543c8c86a5757a7753">TXMPFiles::SetDefaultProgressCallback</a></div><div class="ttdeci">static void SetDefaultProgressCallback(XMP_ProgressReportProc proc, void *context=0, float interval=1.0, bool sendStartStop=false)</div><div class="ttdoc">SetDefaultProgressCallback() sets a global default for progress tracking. This is used as a default f...</div></div>
<div class="ttc" id="aclassXMP__IO_html"><div class="ttname"><a href="classXMP__IO.html">XMP_IO</a></div><div class="ttdoc">Abstract base class for client-managed I/O with TXMPFiles.</div><div class="ttdef"><b>Definition:</b> <a href="XMP__IO_8hpp_source.html#l00044">XMP_IO.hpp:44</a></div></div>
<div class="ttc" id="aclassTXMPFiles_html_a5977d8094086a7c2bfa9abe03af2265c"><div class="ttname"><a href="classTXMPFiles.html#a5977d8094086a7c2bfa9abe03af2265c">TXMPFiles::xmpFilesRef</a></div><div class="ttdeci">XMPFilesRef xmpFilesRef</div><div class="ttdef"><b>Definition:</b> <a href="TXMPFiles_8hpp_source.html#l00844">TXMPFiles.hpp:844</a></div></div>
<div class="ttc" id="aXMP__Const_8h_html_ad439e3ceeb4590d310f6125aa12c6df6"><div class="ttname"><a href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a></div><div class="ttdeci">const typedef char * XMP_StringPtr</div><div class="ttdoc">The type for input string parameters. A const char *, a null-terminated UTF-8 string.</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00178">XMP_Const.h:178</a></div></div>
<div class="ttc" id="aclassTXMPFiles_html_a6dfa135d53143d45e5ff22efa554398e"><div class="ttname"><a href="classTXMPFiles.html#a6dfa135d53143d45e5ff22efa554398e">TXMPFiles::IsMetadataWritable</a></div><div class="ttdeci">static bool IsMetadataWritable(XMP_StringPtr filePath, bool *writable, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits options=0)</div><div class="ttdoc">IsMetadataWritable() returns true if metadata can be updated for the given media path.</div></div>
<div class="ttc" id="aclassTXMPFiles_html_a3f1483fcc92860460d3772216dfaef81"><div class="ttname"><a href="classTXMPFiles.html#a3f1483fcc92860460d3772216dfaef81">TXMPFiles::operator=</a></div><div class="ttdeci">void operator=(const TXMPFiles&lt; tStringObj &gt; &amp;rhs)</div><div class="ttdoc">Assignment operator.</div></div>
<div class="ttc" id="aXMP__Const_8h_html_a9639ef73ab21086098b0f099de248f26"><div class="ttname"><a href="XMP__Const_8h.html#a9639ef73ab21086098b0f099de248f26">XMP_ProgressReportProc</a></div><div class="ttdeci">bool(* XMP_ProgressReportProc)(void *context, float elapsedTime, float fractionDone, float secondsToGo)</div><div class="ttdoc">The signature of a client-defined callback for progress report notifications.</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01550">XMP_Const.h:1550</a></div></div>
<div class="ttc" id="aXMP__Const_8h_html_a9f7dcc184f901c713274edfdac5bcc9a"><div class="ttname"><a href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a></div><div class="ttdeci">XMP_Uns32 XMP_StringLen</div><div class="ttdoc">The type for string length parameters. A 32-bit unsigned integer, as big as will be practically neede...</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00179">XMP_Const.h:179</a></div></div>
<div class="ttc" id="aclassTXMPFiles_html_a5eaa92724cc82d933a32eff9c4636739"><div class="ttname"><a href="classTXMPFiles.html#a5eaa92724cc82d933a32eff9c4636739">TXMPFiles::~TXMPFiles</a></div><div class="ttdeci">virtual ~TXMPFiles()</div><div class="ttdoc">Destructor; typical virtual destructor.</div></div>
<div class="ttc" id="aclassTXMPFiles_html_ae403e54b9cc5df0f59d79e31cce84e3f"><div class="ttname"><a href="classTXMPFiles.html#ae403e54b9cc5df0f59d79e31cce84e3f">TXMPFiles::SetClientString</a></div><div class="ttdeci">static void SetClientString(void *clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen)</div></div>
<div class="ttc" id="aclassTXMPFiles_html_a29a11a1539d6300da3fb4c7e9ea02bb6"><div class="ttname"><a href="classTXMPFiles.html#a29a11a1539d6300da3fb4c7e9ea02bb6">TXMPFiles::CanPutXMP</a></div><div class="ttdeci">bool CanPutXMP(const SXMPMeta &amp;xmpObj)</div><div class="ttdoc">CanPutXMP() reports whether this file can be updated with a specific XMP packet.</div></div>
<div class="ttc" id="aXMP__Const_8h_html_a8283c9596c03b6d626d5a2b7a90e23ab"><div class="ttname"><a href="XMP__Const_8h.html#a8283c9596c03b6d626d5a2b7a90e23ab">kXMP_UseNullTermination</a></div><div class="ttdeci">#define kXMP_UseNullTermination</div><div class="ttdoc">Options macro sets string style.</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00472">XMP_Const.h:472</a></div></div>
<div class="ttc" id="aclassTXMPFiles_html_a0874bbbf41c9490abfb613bfe297327d"><div class="ttname"><a href="classTXMPFiles.html#a0874bbbf41c9490abfb613bfe297327d">TXMPFiles::Initialize</a></div><div class="ttdeci">static bool Initialize()</div><div class="ttdoc">Initializes the XMPFiles library; must be called before creating an SXMPFiles object.</div></div>
<div class="ttc" id="aclassTXMPFiles_html_afcd21cfe5d6f13c648c5541e161919cb"><div class="ttname"><a href="classTXMPFiles.html#afcd21cfe5d6f13c648c5541e161919cb">TXMPFiles::OpenFile</a></div><div class="ttdeci">bool OpenFile(XMP_StringPtr filePath, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits openFlags=0)</div><div class="ttdoc">OpenFile() opens a file for metadata access.</div></div>
<div class="ttc" id="aclassTXMPFiles_html_a43a98633a0090fb4ade76edf24302ab1"><div class="ttname"><a href="classTXMPFiles.html#a43a98633a0090fb4ade76edf24302ab1">TXMPFiles::SetErrorCallback</a></div><div class="ttdeci">void SetErrorCallback(XMPFiles_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)</div><div class="ttdoc">SetErrorCallback() registers an error notification callback.</div></div>
<div class="ttc" id="aclassTXMPFiles_html_a1e8de80c252b60b332dc4bc524139fd8"><div class="ttname"><a href="classTXMPFiles.html#a1e8de80c252b60b332dc4bc524139fd8">TXMPFiles::Terminate</a></div><div class="ttdeci">static void Terminate()</div><div class="ttdoc">Terminates use of the XMPFiles library.</div></div>
<div class="ttc" id="aclassTXMPFiles_html_a42ca0bbc5ac66a8de1710e03a7ff17b3"><div class="ttname"><a href="classTXMPFiles.html#a42ca0bbc5ac66a8de1710e03a7ff17b3">TXMPFiles::GetXMP</a></div><div class="ttdeci">bool GetXMP(SXMPMeta *xmpObj=0, tStringObj *xmpPacket=0, XMP_PacketInfo *packetInfo=0)</div><div class="ttdoc">GetXMP() retrieves the XMP metadata from an open file.</div></div>
<div class="ttc" id="aclassTXMPFiles_html_a311fc36fdf7270fe05b1c531cdbbd009"><div class="ttname"><a href="classTXMPFiles.html#a311fc36fdf7270fe05b1c531cdbbd009">TXMPFiles::GetInternalRef</a></div><div class="ttdeci">XMPFilesRef GetInternalRef()</div><div class="ttdoc">GetInternalRef() retrieves an internal reference that can be safely passed across DLL boundaries and ...</div></div>
<div class="ttc" id="aclassTXMPFiles_html_aa283e2a1c16918c86148446859ed1a2d"><div class="ttname"><a href="classTXMPFiles.html#aa283e2a1c16918c86148446859ed1a2d">TXMPFiles::SetProgressCallback</a></div><div class="ttdeci">void SetProgressCallback(XMP_ProgressReportProc proc, void *context=0, float interval=1.0, bool sendStartStop=false)</div><div class="ttdoc">SetProgressCallback() sets the progress notification callback for the associated XMPFiles (library) o...</div></div>
<div class="ttc" id="aclassTXMPFiles_html_aeca89170c7aa3e2d56e30bff04dd7927"><div class="ttname"><a href="classTXMPFiles.html#aeca89170c7aa3e2d56e30bff04dd7927">TXMPFiles::CloseFile</a></div><div class="ttdeci">void CloseFile(XMP_OptionBits closeFlags=0)</div><div class="ttdoc">CloseFile() explicitly closes an opened file.</div></div>
<div class="ttc" id="aclassTXMPFiles_html_afd30a5ad1765a9288e7f6ef118255a73"><div class="ttname"><a href="classTXMPFiles.html#afd30a5ad1765a9288e7f6ef118255a73">TXMPFiles::SetClientStringVector</a></div><div class="ttdeci">static void SetClientStringVector(void *clientPtr, XMP_StringPtr *arrayPtr, XMP_Uns32 stringCount)</div></div>
<div class="ttc" id="aclassTXMPFiles_html_ad3f7babdc07c7de0d0cd9a3362b4710a"><div class="ttname"><a href="classTXMPFiles.html#ad3f7babdc07c7de0d0cd9a3362b4710a">TXMPFiles::PutXMP</a></div><div class="ttdeci">void PutXMP(const SXMPMeta &amp;xmpObj)</div><div class="ttdoc">PutXMP() updates the XMP metadata in this object without writing out the file.</div></div>
<div class="ttc" id="aXMP__Const_8h_html_aeb865118433be92d88e5f49ed11487c8"><div class="ttname"><a href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a></div><div class="ttdeci">XMP_Uns32 XMP_OptionBits</div><div class="ttdoc">The type for a collection of 32 flag bits.</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00181">XMP_Const.h:181</a></div></div>
<div class="ttc" id="aclassTXMPFiles_html_a03e6c681e827666690f0e5567b0b2a8a"><div class="ttname"><a href="classTXMPFiles.html#a03e6c681e827666690f0e5567b0b2a8a">TXMPFiles::GetAssociatedResources</a></div><div class="ttdeci">static bool GetAssociatedResources(XMP_StringPtr filePath, std::vector&lt; tStringObj &gt; *resourceList, XMP_FileFormat format=kXMP_UnknownFile, XMP_OptionBits options=0)</div><div class="ttdoc">GetAssociatedResources() returns a list of files and folders associated to filePath.</div></div>
<div class="ttc" id="astructXMP__DateTime_html"><div class="ttname"><a href="structXMP__DateTime.html">XMP_DateTime</a></div><div class="ttdoc">The expanded type for a date and time.</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l00232">XMP_Const.h:232</a></div></div>
<div class="ttc" id="aclassTXMPFiles_html_a8e37b25dd1cba1e9a3f45037022717f2"><div class="ttname"><a href="classTXMPFiles.html#a8e37b25dd1cba1e9a3f45037022717f2">TXMPFiles::ResetErrorCallbackLimit</a></div><div class="ttdeci">void ResetErrorCallbackLimit(XMP_Uns32 limit=1)</div><div class="ttdoc">ResetErrorCallbackLimit() resets the error notification limit and counting. It has no effect if an er...</div></div>
<div class="ttc" id="aXMP__Const_8h_html_a300d9a9189cb4ddb6970d05389f5c28e"><div class="ttname"><a href="XMP__Const_8h.html#a300d9a9189cb4ddb6970d05389f5c28e">XMP_FileFormat</a></div><div class="ttdeci">XMP_Uns32 XMP_FileFormat</div><div class="ttdoc">Type for file format identification constants. See kXMP_PDFFile and following.</div><div class="ttdef"><b>Definition:</b> <a href="XMP__Const_8h_source.html#l01004">XMP_Const.h:1004</a></div></div>
<div class="ttc" id="aclassTXMPFiles_html"><div class="ttname"><a href="classTXMPFiles.html">TXMPFiles</a></div><div class="ttdoc">API for access to the main (document-level) metadata in a file.</div><div class="ttdef"><b>Definition:</b> <a href="TXMPFiles_8hpp_source.html#l00069">TXMPFiles.hpp:69</a></div></div>
<div class="ttc" id="aclassTXMPFiles_html_a6ac78e3c7286ca8dcb41eaa007aa00e8"><div class="ttname"><a href="classTXMPFiles.html#a6ac78e3c7286ca8dcb41eaa007aa00e8">TXMPFiles::GetFormatInfo</a></div><div class="ttdeci">static bool GetFormatInfo(XMP_FileFormat format, XMP_OptionBits *handlerFlags=0)</div><div class="ttdoc">GetFormatInfo() reports what features are supported for a specific file format.</div></div>
<div class="ttc" id="aclassTXMPFiles_html_accc6c1cef9f124f6c5ed360251aa5aa7"><div class="ttname"><a href="classTXMPFiles.html#accc6c1cef9f124f6c5ed360251aa5aa7">TXMPFiles::SetDefaultErrorCallback</a></div><div class="ttdeci">static void SetDefaultErrorCallback(XMPFiles_ErrorCallbackProc proc, void *context=0, XMP_Uns32 limit=1)</div><div class="ttdoc">SetDefaultErrorCallback() registers a global default error notification callback.</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_f832923ad3cb060bc87ad85e68b8a1c3.html">public</a></li><li class="navelem"><a class="el" href="dir_0fb2101ba02d68f078970216a1fe0334.html">include</a></li><li class="navelem"><a class="el" href="TXMPFiles_8hpp.html">TXMPFiles.hpp</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
